Digital images can be captured, stored, manipulated and/or displayed on many devices, including general purpose computers, digital still cameras and digital video cameras. On many such devices a user can select an image or set of images for display on the particular device. In order to meet the viewing conditions of a particular device, images are often displayed in different sizes (or resolutions) and typically in sizes less than the size of a corresponding original image.
Digital images are typically stored in a compressed format on devices in order to reduce storage, memory and bandwidth costs. A widely used standard for image compression is the “Joint Photographic Experts Group (JPEG)” standard, for image compression. The JPEG standard comprises many variations based on a common compression scheme. The most widely used of the JPEG compression schemes is referred to as “JPEG baseline mode”. However, other less popular modes, are available under the JPEG standard. One of these less popular modes of compression is referred to as “spectral selection mode”. Spectral selection mode allows for encoding, and subsequent decoding, of an image using several scans through the image. A detailed description of each of the JPEG standards discussed above can be found in a publication entitled “JPEG: Still Image Data Compression Standard”, by W. B. Pennebaker and J. L. Mitchell, published in 1993 by Van Nostrand Reinhold publishers, hereinafter referred to as Pennebaker et al.
Computer browsing applications typically display many small representations of a set of images called “thumbnail images” or “thumbnails”. Typically many such thumbnails can be displayed on a device at one time. As such, the time required to display a thumbnail image (i.e. the “display time”) and hence the time required to decompress a stored thumbnail image (i.e. the “decode time”), is extremely important to the users of the devices discussed above.
Different size representations of an image can be generated by decoding a corresponding full-size compressed version of the image and then sub-sampling the decoded image to a desired size. Whilst such methods can provide good compression of images, particularly for a large collection of images, the display of images compressed according to such methods is extremely slow and therefore undesirable even when using modern computer processing devices.
Accordingly, other methods have been developed in order to speed-up decoding of image data at a reduced size (or reduced resolution) for baseline JPEG images. Such other methods are employed, for example, in source code produced by a group known as the Independent JPEG Group (IJG). However, any increase in the decoding speed achieved through using these other methods is often insufficient for many applications. Another known method for providing different size (or resolution) representations of an image is based on the storage of multiple resolutions of a particular image as a set of images, and then independent compression of each resolution according to the JPEG compression standard. Such a method is utilized by the FlashPix™ format, for example, as known to those in the relevant art. in order to decode image data using such a method, a desired resolution can be selected for the encoded images and then the images are decoded accordingly. Whilst storing multiple resolutions of a particular image as a set of images is relatively fast there are a number of disadvantages. Firstly, since multiple sizes of each image need to be stored, some of the image data is redundant. Such a problem is particularly prevalent when a typical dyadic range of resolutions are stored (i.e. 1, ½, ¼ etc, times smaller than the original image in each dimension). Secondly, storing multiple versions of each image, albeit of different sizes, impacts unfavourably on the compression ratio between a compressed and an uncompressed image. Thirdly, having several images representing one image can result in a number of data management problems.
Still another known method for providing different size images is based on the embedding of a thumbnail version of an image in a compressed image code-stream. Such a method is utilized for example in the ‘Exif” image format, as known to those in the relevant art, and as widely used in digital still cameras. A thumbnail image stored in an Exif image is often used when displaying the image. In such a method, only the thumbnail image is decoded to provide a small representation (low resolution) representation of the image. Decoding the thumbnail is substantially faster than decoding a full size compressed image and then down-sampling to the desired size. However, the thumbnail can only be decoded efficiently at its original or native size. The decoding speed is still too slow for many applications that require a thumbnail to be decoded at lower resolutions. In particular, the time taken to decode the thumbnail at a size that is eight times smaller in each dimension, for example, to provide an iconic version of the image, is far less than desirable for some applications.
There are a number of known non-redundant hierarchical or multi-resolution image representations that allow relatively fast multi-resolution decoding, such as discrete wavelet transform (DWT) based compression methods, which can be used for decoding images relatively quickly at variable sizes. An image compressed in accordance with the “Joint Photographic Experts Group 2000 (JPEG 2000)” image compression standard for image compression, is an example of one such image representation. However, with JPEG2000 and other wavelet based compression methods, there are no guarantees on the size of the lowest resolution image that can be decoded efficiently, and further there is no guarantee that even such a lowest resolution image can itself be decoded efficiently. For instance, some JPEG2000 images are unable to be decoded fast enough for applications that desire multiple size decoding.